1. Technical Field
This invention relates generally to sending data packets over a first network for routing over a second network, and more particularly to sending such data packets where the first network is an input/output (I/O) network, such as an InfiniBand network, and the second network is a communication network, such as an Ethernet network.
2. Description of the Prior Art
Input/output (I/O) networks, such as system buses, can be used for the processor of a computer to communicate with peripherals such as network adapters. However, constraints in the architectures of common I/O networks, such as the Peripheral Component Interface (PCI) bus, limit the overall performance of computers. Therefore, new types of I/O networks have been proposed.
One new type of I/O network is known and referred to as the InfiniBand network. The InfiniBand network replaces the PCI or other bus currently found in computers with a packet-switched network, complete with one or more routers. A host channel adapter (HCA) couples the processor to a subnet, whereas target channel adapters (TCAs) couple the peripherals to the subnet. The subnet includes at least one switch, and links that connect the HCA and the TCAs to the switches. For example, a simple InfiniBand network may have one switch, to which the HCA and the TCAs connect through links. Topologies that are more complex are also possible and contemplated.
InfiniBand networks can interconnect with communication networks. For instance, an Ethernet network adapter may be installed that enables communication over an Ethernet network, which is a common type of communication network. The network adapter has its own TCA for coupling to an InfiniBand network. The InfiniBand specification provides a raw datagram mode of communication to bridge packets received from an Ethernet network for transmission over an InfiniBand network, and vice-versa.
A raw datagram, or packet, header has two two-octet (sixteen-bit) fields. The first field is an Ethertype field, and also is known as the length/type field. The second field is reserved by the InfiniBand specification. According to the IEEE 802.3 standard, and the InfiniBand specification since it refers to this standard, the Ethertype field can have a value greater than or equal to 1536 decimal, or 0xc3x97600 hexadecimal, to signify data packet type. Values are registered with and assigned by the Internet Assigned Numbers Authority (IANA), so that there is common understanding as to the meaning of different values. The packets utilize the IEEE 802.3 Ethertype values more specifically to distinguish their communication protocol type.
The Ethertype values are defined in relation to network layering. In common networking terminology, local-area-network (LAN) technologies, such as Ethernet, Token Ring, and so on, are referred to as at layer 2. Communication protocols that utilize layer 2 are referred to as upper-layer protocols at layer 3. Such protocols include the Internet Protocol (IP), including both versions 4 and 6 thereof, the Address Resolution Protocol (ARP), the Internet Packet Exchange (IPX) protocol, the System Network Architecture (SNA) protocol, and so on. The 802.3 Ethertype values in particular identify the layer 3 data payload that is being transmitted in a given packet. For example, the Ethertype value 0xc3x97800 signifies IP version 4, the value 0xc3x97806 signifies ARP, the value 0xc3x9780D5 signifies SNA over Ethernet, and so on.
Layer 2 communication protocols, or media, that are commonly used include Ethernet, both according to the Dec-Intel-Xerox (DIX) and IEEE 802.3 standards, and Token Ring, which is according to the IEEE 802.5 standard. Other common layer 2 communication protocols are Asynchronous Transfer Mode (ATM), which is defined in the Request for Comment (RFC) 2225 governed by the Internet Engineering Task Force (IETF), and LAN Emulation (LANE) over ATM. Another common layer 2 protocol is Token Bus, which is according to the IEEE 802.4 standard.
Some layer 2 protocols further fall under the IEEE 802.2 standard, such as 802.3 Ethernet, 802.5 Token Ring, and 802.4 Token Bus, which require use of a logical link control (LLC) header and a System Network Architecture Protocol (SNAP) header. The SNAP header includes a field for an Ethertype value. DIX Ethernet does not use LLC or SNAP headers, but its header nevertheless includes a field for an Ethertype value.
For most types of layer 2 communication, compliance is generally required with either the 802.2 SNAP standard, the 802.2 LLC standard, or both standards. This means that SNAP and/or LLC header information must be conveyed within InfiniBand networks for true bridging between Ethernet communication networks and InfiniBand networks to occur. However, the InfiniBand standard specifies only the IEEE 802.3 standard for the inclusion of Ethernet-specific information. Because the IEEE 802.3 standard does not provide for conveyance of SNAP and LLC header information, Ethernet communication that requires the use of such information cannot be properly sent over InfiniBand networks. Ethertype values also cannot signify the encapsulation of layer 2 packets within Ethernet or 802.2 SNAP packets. For example, Ethertype values cannot specify that a packet is a Token Ring packet, because this situation does not arise in Ethernet or 802.2 SNAP networks.
The use of 802.3 Ethertype by the InfiniBand specification, therefore, restricts packets transferred from a non-InfiniBand network to an InfiniBand network to comply only with upper-layer protocols. That is, the information contained in the Ethertype field of the raw packet headers is insufficient for true bridging to occur, because layer 2 communication is not restricted to that which complies only with the IEEE 802.3 standard. This shortfall of the InfiniBand specification curtails its utility in situations where non-802.3 data packet information must be conveyed, and for which there is no place provided by the InfiniBand specification.
To overcome this limitation, TCAs may be made more intelligent, and instructed by control messages as to further information regarding the data packets that are being transmitted. However, this adds complexity to the TCAs. Another potential solution is to encapsulate further information in the data packets themselves. This solution has been used in other architectures, such as LANE over ATM networks. In this case, LANE over ATM specifies encapsulating Ethernet data packets with additional information in larger packets. This packet-inside-a-packet solution has shortcomings, however.
For instance, in the case of an InfiniBand network, the HCA would have to wrap, or encapsulate, the Ethernet data packets in the larger packets before sending them over the InfiniBand network. The TCA would then have to unwrap, or unencapsulate, the Ethernet data packets before relaying them to the Ethernet network adapter. This adds a layer of complexity to both the TCA and HCA, likely resulting in additional cost to implement an InfiniBand network in a computer. Furthermore, this approach uses additional InfiniBand network bandwidth, which is generally always disadvantageous.
For these described reasons, as well as other reasons, there is a need for the present invention.
The invention relates to the alternate use of data packet fields to convey information. A method of the invention receives a packet of data by a second adapter from a first adapter over a first network. The packet of data has at least a first part intended to signify a type of the packet of data, but actually conveys other information regarding the packet of data. The method further includes routing the packet of data by the second adapter over the second network.
A computerized system of the invention includes an InfiniBand input/output (I/O) network, a host channel adapter (HCA) and a target channel adapter (TCA) coupled to the InfiniBand I/O network, and a network adapter coupled to the TCA and to a communication network. The HCA is capable of sending raw datagram headers for routing over the communication network. The headers have a field intended to have a value greater than or equal to a predetermined number to signify a data packet type, but employs a value less than the predetermined number to convey other information regarding the data packet. The TCA is capable of receiving the headers sent by the HCA, whereas the network adapter is capable of routing the headers received by the TCA over the communication network.
An article of manufacture of the invention includes a computer-readable signal bearing medium and a raw datagram header stored in the medium through an input/output (I/O) network for ultimate routing over a communication network. The header has a field. The field is intended to signify a data packet type, but actually conveys other packet information.
Other features and advantages of the invention will become apparent from the following detailed description of the presently preferred embodiment of the invention, taken in conjunction with the accompanying drawings.